# func代表被装饰的函数，
# 装饰器更准确的描述是一个嵌套函数，且将内函数返回出
def decorator_function(func):
    # func：代表就是被装饰的函数
    def wrapper_function():
        print("在函数执行之前做一些事情")
        func()  # 调用被装饰的函数
        print("在函数执行之后做一些事情")

    # 返回内函数本身，不要有()
    return wrapper_function


# 使用装饰器
@decorator_function
def my_function():
    print("这是原函数的功能")


# 调用my_function函数后，检查到my_function函数有装饰器，
# 所以会先调用装饰器，然后调用被装饰的函数
my_function()